package com.quanyan.assets.service;

import com.quanyan.api.APIRequest;
import com.quanyan.api.APIResponse;
import com.quanyan.assets.entity.TbUserAssets;
import com.quanyan.assets.request.*;
import com.quanyan.assets.response.RespCoupon;
import com.quanyan.assets.response.RespRuleDetail;
import com.quanyan.assets.response.RespUserAccumulateModify;
import com.quanyan.common.Plugin.PageObj;
import com.quanyan.common.enums.BaseEnum;

import java.util.List;

/**
 * Created by wmb on 2016/5/31.
 */
public interface UserAssetsService {
    //新增该用户下所有的资产账户
    APIResponse add(APIRequest<ReqUserAssets> apiRequest);

    //修改用户积分
    APIResponse<RespUserAccumulateModify> modifyAccumulate(APIRequest<ReqUserAccumulateModify> apiRequest);

    //修改用户积分列表
    APIResponse<List<RespUserAccumulateModify>> modifyAccumulateBatch(APIRequest<ReqUserAccumulateModifyBatch> apiRequest);

    //获取用户当前系统资产列表
    APIResponse<List<TbUserAssets>> getUserAccumulateList(APIRequest<ReqUserInfo> apiRequest);

    //获取当前系统业务规则详情
    APIResponse<List<RespRuleDetail>> getUserAccumulateAndRule(APIRequest<ReqRuleDetail> apiRequest);

    //冻结用户
    APIResponse<RespUserAccumulateModify> freezeAccumulate(APIRequest<ReqUserAccumulateModify> apiRequest);

    //冻结用户积分列表
    APIResponse<List<RespUserAccumulateModify>> freezeAccumulateBatch(APIRequest<ReqUserAccumulateModifyBatch> apiRequest);

    //资产解冻(支付成功)
    APIResponse<List<TbUserAssets>> unfreezeAccumulateSuccess(APIRequest<ReqUnfreeze> apiRequest);

    //资产解冻(支付失败)
    APIResponse<List<TbUserAssets>> unfreezeAccumulateFail(APIRequest<ReqUnfreeze> apiRequest);

    //冻结资产--全部
    APIResponse<BaseEnum> freezeOrder(APIRequest<ReqFreezeOrder> apiRequest);

    //解冻(成功)--全部
    APIResponse<BaseEnum> unfreezeSuccess(APIRequest<ReqUnfreezeOrder> apiRequest);

    //解冻(失败)--全部
    APIResponse<BaseEnum> unfreezeFail(APIRequest<ReqUnfreezeOrder> apiRequest);

    //冻结退款金额--全部
    APIResponse<List<TbUserAssets>> refundSubmit(APIRequest<ReqRefund> apiRequest);

    //退款金额解冻(成功)--全部
    APIResponse<List<TbUserAssets>> refundSuccess(APIRequest<ReqRefund> apiRequest);

    //退款金额解冻(失败)--全部
    APIResponse<List<TbUserAssets>> refundFail(APIRequest<ReqRefund> apiRequest);

    //批量不定数量添加鸟蛋
    APIResponse batchModifyEgg(APIRequest<List<ReqUserAccumulateModify>> apiRequest);
}
